package com.javaee.lu99.ui.login;

import com.javaee.lu99.common.msg.ShowDialogMsg;
import com.javaee.lu99.ui.browser.BrowserUi;
import com.javaee.lu99.ui.socket.ServerListener;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class LoginUi {
    private static void addActionListener(JButton saveButton) {
        // 为按钮绑定监听器
        saveButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 对话框
                ShowDialogMsg.msg("测试点击");
            }
        });
    }
    private static void addActionListenerTest(JButton button) {
        // 为按钮绑定监听器
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 对话框
//                ShowDialogMsg.msg("测试点击");
                BrowserUi.openForm("http://192.168.0.111:1000/views/bank/test.html","测试");
            }
        });
    }
    private static void addActionListenerSocket(JButton button) {
        // 为按钮绑定监听器
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                new Thread(() -> {
                    try {
                        new ServerListener().bind(99);
                    } catch (Exception e2) {
                        e2.printStackTrace();
                    }
                }).start();
            }
        });
    }

    public void placeComponents(JPanel panel) {
        /* 布局部分我们这边不多做介绍
         * 这边设置布局为 null
         */
        panel.setLayout(null);
        // 创建 JLabel
        JLabel userLabel = new JLabel("用户名:");
        /* 这个方法定义了组件的位置。
         * setBounds(x, y, width, height)
         * x 和 y 指定左上角的新位置，由 width 和 height 指定新的大小。
         */
        userLabel.setBounds(10,20,80,25);
        panel.add(userLabel);
        /*
         * 创建文本域用于用户输入
         */
        JTextField userText = new JTextField(20);
        userText.setBounds(100,20,165,25);
        panel.add(userText);

        // 输入密码的文本域
        JLabel passwordLabel = new JLabel("密码:");
        passwordLabel.setBounds(10,50,80,25);
        panel.add(passwordLabel);

        /*
         *这个类似用于输入的文本域
         * 但是输入的信息会以点号代替，用于包含密码的安全性
         */
        JPasswordField passwordText = new JPasswordField(20);
        passwordText.setBounds(100,50,165,25);
        panel.add(passwordText);

        // 创建登录按钮
        JButton loginButton = new JButton("登录");
        loginButton.setBounds(10, 80, 80, 25);
        addActionListener(loginButton);
        panel.add(loginButton);
        // 测试
        JButton testButton = new JButton("测试1");
        testButton.setBounds(100, 80, 80, 25);
        addActionListenerTest(testButton);
        panel.add(testButton);
        // socket server
        JButton socketButton = new JButton("socket");
        socketButton.setBounds(190, 80, 80, 25);
        addActionListenerSocket(socketButton);
        panel.add(socketButton);
    }
}
